package thss.mro.manager;

import thss.mro.entity.Packet;
import thss.mro.entity.template.ProtocolTemplate;
import thss.mro.parser.IPacketParser;
import thss.mro.util.Protocol;
import thss.mro.util.Template;

/**
 * 协议管理类
 */
public class ProtocolManager {
	
	/**
	 * 根据端口获得协议名
	 */
	public static String getProtocolType(int port){
		return Protocol.getProtocolName(port);
	}
	
	/**
	 * 根据协议名获得头部模板ID
	 */
	public static String getHeadTplId(String protocolName){
		return Protocol.getHeadTpl(protocolName).getTemplateId();
	}
	
	/**
	 * 解析
	 */
	public static Packet parse(ProtocolTemplate tpl,byte[] data){
		String templateId = tpl.getTemplateId();
		IPacketParser parser = Template.getParser(templateId);
		return parser.parse(tpl, data);
	}
	
	
}
